home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / clean / sun3.lha / Sun3 / deltaIO.abc < prev    next >
Text File  |  1992-08-07  |  8KB  |  515 lines

  1. .comp 800 111111011
  2. .code     222      12      55
  3. .start _nostart_
  4. .endinfo
  5. .implab _cycle_in_spine
  6. .implab _reserve
  7. .implab _type_error
  8. .impdesc _Defer
  9. .implab _defer_code
  10. .implab _hnf
  11. .impdesc _Cons
  12. .impdesc _Tuple
  13. .impdesc _Select
  14. .impdesc _Nil
  15. .implab _driver
  16. .implab e_system_nAP
  17. .implab e_system_sAP
  18. .impdesc e_system_AP
  19. .desc m_deltaIO _hnf _hnf 0 "deltaIO"
  20.  
  21. .export e_deltaIO_FOpen
  22. .export e_deltaIO_sFOpen
  23. .export e_deltaIO_nFOpen
  24. .desc e_deltaIO_FOpen e_deltaIO_nFOpen e_deltaIO_lFOpen 2 "FOpen"
  25. .o 2 0
  26. e_deltaIO_lFOpen:
  27.     repl_args 1 1
  28. .d 2 0
  29.     jsr eaFOpen
  30. .o 0 2 f
  31.     create
  32.     fillF_b 0 0
  33.     pop_b 2
  34. .d 1 0
  35.     rtn
  36. .n 2 e_deltaIO_FOpen
  37. .o 1 0
  38. e_deltaIO_nFOpen:
  39.     push_node _reserve 2
  40. .d 2 0
  41.     jsr eaFOpen
  42. .o 0 2 f
  43.     getWL 0
  44.     fillF_b 0 0
  45.     release
  46.     pop_b 2
  47. .d 1 0
  48.     rtn
  49. .o 2 0
  50. eaFOpen:
  51.             ||    STRING
  52.     push_a 1
  53.     jsr_eval
  54.     pop_a 1
  55.             ||    STRING
  56.     jsr_eval
  57.             ||    STRING
  58.             ||    STRING
  59. .o 2 0
  60. e_deltaIO_sFOpen:
  61. .o 2 0
  62. sFOpen.1:
  63.             ||    Match code for alternative 1, stacksizes A: 2 B: 0
  64.             ||    Building the contractum, Stacksizes A: 2 B: 0
  65. .inline FOpen
  66.     openF 0 1
  67.     pop_a 2
  68. .end
  69. .d 0 2 f
  70.     rtn
  71. .export e_deltaIO_FReOpen
  72. .export e_deltaIO_sFReOpen
  73. .export e_deltaIO_nFReOpen
  74. .desc e_deltaIO_FReOpen e_deltaIO_nFReOpen e_deltaIO_lFReOpen 1 "FReOpen"
  75. .o 2 0
  76. e_deltaIO_lFReOpen:
  77.     pop_a 1
  78. .d 1 0
  79.     jsr eaFReOpen
  80. .o 0 2 f
  81.     create
  82.     fillF_b 0 0
  83.     pop_b 2
  84. .d 1 0
  85.     rtn
  86. .n 1 e_deltaIO_FReOpen
  87. .o 1 0
  88. e_deltaIO_nFReOpen:
  89.     push_node _reserve 1
  90. .d 1 0
  91.     jsr eaFReOpen
  92. .o 0 2 f
  93.     getWL 0
  94.     fillF_b 0 0
  95.     release
  96.     pop_b 2
  97. .d 1 0
  98.     rtn
  99. .o 1 0
  100. eaFReOpen:
  101.             ||    FILE
  102.     jsr_eval
  103.             ||    FILE
  104.     pushF_a 0
  105.     pop_a 1
  106. .o 0 2 f
  107. e_deltaIO_sFReOpen:
  108. .o 0 2 f
  109. sFReOpen.1:
  110.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  111.             ||    Building the contractum, Stacksizes A: 0 B: 2
  112. .inline FReOpen
  113.     reopenF
  114. .end
  115. .d 0 2 f
  116.     rtn
  117. .export e_deltaIO_FGetC
  118. .export e_deltaIO_sFGetC
  119. .export e_deltaIO_nFGetC
  120. .desc e_deltaIO_FGetC e_deltaIO_nFGetC e_deltaIO_lFGetC 1 "FGetC"
  121. .o 2 0
  122. e_deltaIO_lFGetC:
  123.     pop_a 1
  124. .d 1 0
  125.     jsr eaFGetC
  126. .o 0 3 c f
  127.     create
  128.     create
  129.     fillF_b 1 0
  130.     create
  131.     fillC_b 0 0
  132.     fill _Tuple 2 _hnf 2
  133.     pop_b 3
  134. .d 1 0
  135.     rtn
  136. .n 1 e_deltaIO_FGetC
  137. .o 1 0
  138. e_deltaIO_nFGetC:
  139.     push_node _reserve 1
  140. .d 1 0
  141.     jsr eaFGetC
  142. .o 0 3 c f
  143.     create
  144.     fillF_b 1 0
  145.     create
  146.     fillC_b 0 0
  147.     getWL 2
  148.     fill _Tuple 2 _hnf 2
  149.     release
  150.     pop_b 3
  151. .d 1 0
  152.     rtn
  153. .o 1 0
  154. eaFGetC:
  155.             ||    FILE
  156.     jsr_eval
  157.             ||    FILE
  158.     pushF_a 0
  159.     pop_a 1
  160. .o 0 2 f
  161. e_deltaIO_sFGetC:
  162. .o 0 2 f
  163. sFGetC.1:
  164.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  165.             ||    Building the contractum, Stacksizes A: 0 B: 2
  166. .inline FGetC
  167.     getFC
  168. .end
  169. .d 0 3 c f
  170.     rtn
  171. .export e_deltaIO_FGetS
  172. .export e_deltaIO_sFGetS
  173. .export e_deltaIO_nFGetS
  174. .desc e_deltaIO_FGetS e_deltaIO_nFGetS e_deltaIO_lFGetS 1 "FGetS"
  175. .o 2 0
  176. e_deltaIO_lFGetS:
  177.     pop_a 1
  178. .d 1 0
  179.     jsr eaFGetS
  180. .o 1 2 f
  181.     create
  182.     create
  183.     fillF_b 0 0
  184.     push_a 2
  185.     fill _Tuple 2 _hnf 2
  186.     update_a 0 1
  187.     pop_a 1
  188.     pop_b 2
  189. .d 1 0
  190.     rtn
  191. .n 1 e_deltaIO_FGetS
  192. .o 1 0
  193. e_deltaIO_nFGetS:
  194.     push_node _reserve 1
  195. .d 1 0
  196.     jsr eaFGetS
  197. .o 1 2 f
  198.     create
  199.     fillF_b 0 0
  200.     push_a 1
  201.     getWL 3
  202.     fill _Tuple 2 _hnf 3
  203.     release
  204.     pop_a 1
  205.     pop_b 2
  206. .d 1 0
  207.     rtn
  208. .o 1 0
  209. eaFGetS:
  210.             ||    FILE
  211.     jsr_eval
  212.             ||    FILE
  213.     pushF_a 0
  214.     pop_a 1
  215. .o 0 2 f
  216. e_deltaIO_sFGetS:
  217. .o 0 2 f
  218. sFGetS.1:
  219.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  220.             ||    Building the contractum, Stacksizes A: 0 B: 2
  221. .inline FGetS
  222.     pushI 80
  223.     create
  224.     getFS 0
  225. .end
  226. .d 1 2 f
  227.     rtn
  228. .export e_deltaIO_IsEndOfFile
  229. .export e_deltaIO_sIsEndOfFile
  230. .export e_deltaIO_nIsEndOfFile
  231. .desc e_deltaIO_IsEndOfFile e_deltaIO_nIsEndOfFile e_deltaIO_lIsEndOfFile 1 "IsEndOfFile"
  232. .o 2 0
  233. e_deltaIO_lIsEndOfFile:
  234.     pop_a 1
  235. .d 1 0
  236.     jsr eaIsEndOfFile
  237. .o 0 1 b
  238.     create
  239.     fillB_b 0 0
  240.     pop_b 1
  241. .d 1 0
  242.     rtn
  243. .n 1 e_deltaIO_IsEndOfFile
  244. .o 1 0
  245. e_deltaIO_nIsEndOfFile:
  246.     push_node _reserve 1
  247. .d 1 0
  248.     jsr eaIsEndOfFile
  249. .o 0 1 b
  250.     getWL 0
  251.     fillB_b 0 0
  252.     release
  253.     pop_b 1
  254. .d 1 0
  255.     rtn
  256. .o 1 0
  257. eaIsEndOfFile:
  258.             ||    FILE
  259.     jsr_eval
  260.             ||    FILE
  261.     pushF_a 0
  262.     pop_a 1
  263. .o 0 2 f
  264. e_deltaIO_sIsEndOfFile:
  265. .o 0 2 f
  266. sIsEndOfFile.1:
  267.             ||    Match code for alternative 1, stacksizes A: 0 B: 2
  268.             ||    Building the contractum, Stacksizes A: 0 B: 2
  269. .inline IsEndOfFile
  270.     endF
  271. .end
  272. .d 0 1 b
  273.     rtn
  274. .export e_deltaIO_FPutC
  275. .export e_deltaIO_sFPutC
  276. .export e_deltaIO_nFPutC
  277. .desc e_deltaIO_FPutC e_deltaIO_nFPutC e_deltaIO_lFPutC 2 "FPutC"
  278. .o 2 0
  279. e_deltaIO_lFPutC:
  280.     repl_args 1 1
  281. .d 2 0
  282.     jsr eaFPutC
  283. .o 0 2 f
  284.     create
  285.     fillF_b 0 0
  286.     pop_b 2
  287. .d 1 0
  288.     rtn
  289. .n 2 e_deltaIO_FPutC
  290. .o 1 0
  291. e_deltaIO_nFPutC:
  292.     push_node _reserve 2
  293. .d 2 0
  294.     jsr eaFPutC
  295. .o 0 2 f
  296.     getWL 0
  297.     fillF_b 0 0
  298.     release
  299.     pop_b 2
  300. .d 1 0
  301.     rtn
  302. .o 2 0
  303. eaFPutC:
  304.             ||    FILE
  305.     push_a 1
  306.     jsr_eval
  307.     pop_a 1
  308.             ||    CHAR
  309.     jsr_eval
  310.             ||    FILE
  311.     pushF_a 1
  312.             ||    CHAR
  313.     pushC_a 0
  314.     pop_a 2
  315. .o 0 3 c f
  316. e_deltaIO_sFPutC:
  317. .o 0 3 c f
  318. sFPutC.1:
  319.             ||    Match code for alternative 1, stacksizes A: 0 B: 3
  320.             ||    Building the contractum, Stacksizes A: 0 B: 3
  321. .inline FPutC
  322.     putFC
  323. .end
  324. .d 0 2 f
  325.     rtn
  326. .export e_deltaIO_FPutS
  327. .export e_deltaIO_sFPutS
  328. .export e_deltaIO_nFPutS
  329. .desc e_deltaIO_FPutS e_deltaIO_nFPutS e_deltaIO_lFPutS 2 "FPutS"
  330. .o 2 0
  331. e_deltaIO_lFPutS:
  332.     repl_args 1 1
  333. .d 2 0
  334.     jsr eaFPutS
  335. .o 0 2 f
  336.     create
  337.     fillF_b 0 0
  338.     pop_b 2
  339. .d 1 0
  340.     rtn
  341. .n 2 e_deltaIO_FPutS
  342. .o 1 0
  343. e_deltaIO_nFPutS:
  344.     push_node _reserve 2
  345. .d 2 0
  346.     jsr eaFPutS
  347. .o 0 2 f
  348.     getWL 0
  349.     fillF_b 0 0
  350.     release
  351.     pop_b 2
  352. .d 1 0
  353.     rtn
  354. .o 2 0
  355. eaFPutS:
  356.             ||    FILE
  357.     push_a 1
  358.     jsr_eval
  359.     pop_a 1
  360.             ||    STRING
  361.     jsr_eval
  362.             ||    FILE
  363.     pushF_a 1
  364.             ||    STRING
  365.     update_a 0 1
  366.     pop_a 1
  367. .o 1 2 f
  368. e_deltaIO_sFPutS:
  369. .o 1 2 f
  370. sFPutS.1:
  371.             ||    Match code for alternative 1, stacksizes A: 1 B: 2
  372.             ||    Building the contractum, Stacksizes A: 1 B: 2
  373. .inline FPutS
  374.     putFS 0
  375.     pop_a 1
  376. .end
  377. .d 0 2 f
  378.     rtn
  379. .export e_deltaIO_StdIn
  380. .export e_deltaIO_sStdIn
  381. .export e_deltaIO_nStdIn
  382. .desc e_deltaIO_StdIn e_deltaIO_nStdIn e_deltaIO_lStdIn 0 "StdIn"
  383. .o 1 0
  384. e_deltaIO_lStdIn:
  385.     halt
  386. .n 0 e_deltaIO_StdIn
  387. .o 1 0
  388. e_deltaIO_nStdIn:
  389.     push_node _reserve 0
  390. .d 0 0
  391.     jsr eaStdIn
  392. .o 0 2 f
  393.     getWL 0
  394.     fillF_b 0 0
  395.     release
  396.     pop_b 2
  397. .d 1 0
  398.     rtn
  399. .o 0 0
  400. e_deltaIO_sStdIn:
  401. .o 0 0
  402. eaStdIn:
  403. .o 0 0
  404. sStdIn.1:
  405.             ||    Match code for alternative 1, stacksizes A: 0 B: 0
  406.             ||    Building the contractum, Stacksizes A: 0 B: 0
  407. .inline StdIn
  408.     pushI 0
  409.     pushI 0
  410. .end
  411. .d 0 2 f
  412.     rtn
  413. .export e_deltaIO_StdOut
  414. .export e_deltaIO_sStdOut
  415. .export e_deltaIO_nStdOut
  416. .desc e_deltaIO_StdOut e_deltaIO_nStdOut e_deltaIO_lStdOut 0 "StdOut"
  417. .o 1 0
  418. e_deltaIO_lStdOut:
  419.     halt
  420. .n 0 e_deltaIO_StdOut
  421. .o 1 0
  422. e_deltaIO_nStdOut:
  423.     push_node _reserve 0
  424. .d 0 0
  425.     jsr eaStdOut
  426. .o 0 2 f
  427.     getWL 0
  428.     fillF_b 0 0
  429.     release
  430.     pop_b 2
  431. .d 1 0
  432.     rtn
  433. .o 0 0
  434. e_deltaIO_sStdOut:
  435. .o 0 0
  436. eaStdOut:
  437. .o 0 0
  438. sStdOut.1:
  439.             ||    Match code for alternative 1, stacksizes A: 0 B: 0
  440.             ||    Building the contractum, Stacksizes A: 0 B: 0
  441. .inline StdOut
  442.     pushI 0
  443.     pushI 1
  444. .end
  445. .d 0 2 f
  446.     rtn
  447. .export e_deltaIO_StdIO
  448. .export e_deltaIO_sStdIO
  449. .export e_deltaIO_nStdIO
  450. .desc e_deltaIO_StdIO e_deltaIO_nStdIO e_deltaIO_lStdIO 0 "StdIO"
  451. .o 1 0
  452. e_deltaIO_lStdIO:
  453.     halt
  454. .n 0 e_deltaIO_StdIO
  455. .o 1 0
  456. e_deltaIO_nStdIO:
  457.     push_node _reserve 0
  458. .d 0 0
  459.     jsr eaStdIO
  460. .o 0 2 f
  461.     getWL 0
  462.     fillF_b 0 0
  463.     release
  464.     pop_b 2
  465. .d 1 0
  466.     rtn
  467. .o 0 0
  468. e_deltaIO_sStdIO:
  469. .o 0 0
  470. eaStdIO:
  471. .o 0 0
  472. sStdIO.1:
  473.             ||    Match code for alternative 1, stacksizes A: 0 B: 0
  474.             ||    Building the contractum, Stacksizes A: 0 B: 0
  475. .inline StdIO
  476.     pushI 0
  477.     pushI 2
  478. .end
  479. .d 0 2 f
  480.     rtn
  481. .export e_deltaIO_StdErr
  482. .export e_deltaIO_sStdErr
  483. .export e_deltaIO_nStdErr
  484. .desc e_deltaIO_StdErr e_deltaIO_nStdErr e_deltaIO_lStdErr 0 "StdErr"
  485. .o 1 0
  486. e_deltaIO_lStdErr:
  487.     halt
  488. .n 0 e_deltaIO_StdErr
  489. .o 1 0
  490. e_deltaIO_nStdErr:
  491.     push_node _reserve 0
  492. .d 0 0
  493.     jsr eaStdErr
  494. .o 0 2 f
  495.     getWL 0
  496.     fillF_b 0 0
  497.     release
  498.     pop_b 2
  499. .d 1 0
  500.     rtn
  501. .o 0 0
  502. e_deltaIO_sStdErr:
  503. .o 0 0
  504. eaStdErr:
  505. .o 0 0
  506. sStdErr.1:
  507.             ||    Match code for alternative 1, stacksizes A: 0 B: 0
  508.             ||    Building the contractum, Stacksizes A: 0 B: 0
  509. .inline StdErr
  510.     pushI 0
  511.     pushI 3
  512. .end
  513. .d 0 2 f
  514.     rtn
  515.